Model Context Protocol のクイックスタートをやってみた

Model Context Protocol のクイックスタートをやってみた

Anthropic から Model Context Protocol という標準プロトコルが発表されたので、クイックスタートをやってみました
Clock Icon2024.12.03

はじめに

こんにちは、アノテーションのなかたです。
Anthropic から Model Context Protocol(略MCP)という標準プロトコルが発表されたので、クイックスタートをやってみました。
https://www.anthropic.com/news/model-context-protocol

Model Context Protocolとは

モデル コンテキスト プロトコルは、開発者がデータ ソースと AI 搭載ツールの間で安全な双方向接続を構築できるようにするオープン スタンダードです。(Google翻訳)

開発者にとって何が嬉しいかというと、リソースに接続するためのプログラムを MCP という標準に合わせることで、使い回せるようになります。

また、開発者向けにクイックスタートや SDK が提供されており、ドキュメントではローカルのファイルやデータベースなどのリソースへ接続するプログラムが公開されています。
https://modelcontextprotocol.io/introduction

やってみる

https://modelcontextprotocol.io/quickstart
こちらのドキュメントにしたがって実行します。
内容としては、ローカルで SQLite データベースをMCPサーバとして起動します。そして、Claude For Desktop と通信し、ローカルにしかないデータをAIとの会話で利用できるようになります。

また、この記事ではMacでの手順を前提とします。

1. Claude For Desktop のインストール

MCP に対応しているAIアシスタントアプリを起動する必要があるため、Claude For Desktop をインストールします。
https://claude.ai/download

2. ツールのインストール

Homebrew から SQLite の起動に必要なツールをインストールします。

brew install uv git sqlite3

3. SQLiteデータベースの用意

sqlite3 ファイルを作成し、サンプルデータを入れます。

sqlite3 ~/test.db <<EOF
CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  name TEXT,
  price REAL
);

INSERT INTO products (name, price) VALUES
  ('Widget', 19.99),
  ('Gadget', 29.99),
  ('Gizmo', 39.99),
  ('Smart Watch', 199.99),
  ('Wireless Earbuds', 89.99),
  ('Portable Charger', 24.99),
  ('Bluetooth Speaker', 79.99),
  ('Phone Stand', 15.99),
  ('Laptop Sleeve', 34.99),
  ('Mini Drone', 299.99),
  ('LED Desk Lamp', 45.99),
  ('Keyboard', 129.99),
  ('Mouse Pad', 12.99),
  ('USB Hub', 49.99),
  ('Webcam', 69.99),
  ('Screen Protector', 9.99),
  ('Travel Adapter', 27.99),
  ('Gaming Headset', 159.99),
  ('Fitness Tracker', 119.99),
  ('Portable SSD', 179.99);
EOF

4. MCP設定ファイルの追加

Claude For Desktop が扱う MCP サーバーの起動設定として、JSON ファイルを追加します。

~/Library/Application\ Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]  # YOUR_USERNAME を書き換えてください。
    }
  }
}

ファイルの内容としては、
uv のコマンドとして提供されている uvx を実行することで、SQLite サーバーを起動しているようです。

すでに開いている場合は、JSONを読み込ませるため Claude For Desktop を再起動します。

5. チャットで試してみる

データベースとの接続を確認するため、新しいチャットで次のプロンプトを入力します。

Can you connect to my SQLite database and tell me what products are available, and their prices?

画像のように、AIアシスタントが SQLite に接続する許可が求められるため、 Allow for This Chat を選択します。


サンプルプロンプトは以下のようなチャットがされました。
(日本語に翻訳してもらっています)

あなた:SQLiteデータベースに接続して、利用可能な製品とその価格を教えてください。

アシスタント:データベースのテーブルを確認します。

(テーブル一覧の確認)

「products」というテーブルが見つかりました。製品の詳細と価格を取得します。

(テーブルのスキーマを確認し、クエリを修正)

以下が、データベースで利用可能な製品のリストです:

1. ウィジェット - 19.99ドル
2. ガジェット - 29.99ドル
3. ギズモ - 39.99ドル
4. スマートウォッチ - 199.99ドル
5. ワイヤレスイヤーバッド - 89.99ドル
6. ポータブル充電器 - 24.99ドル
7. Bluetoothスピーカー - 79.99ドル
8. スマートフォンスタンド - 15.99ドル
9. ノートパソコンスリーブ - 34.99ドル
10. ミニドローン - 299.99ドル
11. LEDデスクランプ - 45.99ドル
12. キーボード - 129.99ドル
13. マウスパッド - 12.99ドル
14. USBハブ - 49.99ドル
15. ウェブカメラ - 69.99ドル
16. スクリーンプロテクター - 9.99ドル
17. 海外用電源アダプター - 27.99ドル
18. ゲーミングヘッドセット - 159.99ドル
19. フィットネストラッカー - 119.99ドル
20. ポータブルSSD - 179.99ドル

製品は9.99ドルのスクリーンプロテクターから、299.99ドルのミニドローンまで幅広く揃っています。これらの製品について、何か具体的に知りたいことはありますか?

i

6. 他の機能

また、MCP サーバーとして認識しているリソースを確認することもできました。

MCP のログを確認することもできました。
今回実施したログを確認したところ、以下のように出力されていました。

% tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

==> /Users/nakata/Library/Logs/Claude/mcp-server-sqlite.log <==
Database error executing query: no such column: product_id
Database error executing query: no such column: product_id
Database error executing query: no such function: STDDEV

==> /Users/nakata/Library/Logs/Claude/mcp.log <==
2024-11-30T08:21:34.968Z [info] Attempting to connect to MCP server sqlite...
2024-11-30T08:21:34.975Z [info] Connected to MCP server sqlite!

参考

https://note.com/npaka/n/ncd797acdad06
https://qiita.com/bbapexx/items/e4a19cdce7574e4dd7ad

おわりに

今後、何らかの MCP サーバープログラムを自作できたらと思います。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.